package com.just.spring4.ch2.scope;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * scope描述的是spring容器如何新建Bean的实例的。
 * scope基本的有如下几种：
 * 1.singleton ,一个spring容器中只有一个bean实例，默认配置
 * 2.prototype，原型模式，每次调用新建一个Bean实例
 * 3.request,web项目中，给每一个http request新建一个bean实例
 * 4.session，web项目中，给每一个http session新建一个bean实例
 * 5.globalSession,这个只在portal应用中有用，给每一个global http session新建一个bean实例
 * 这里只简单测试了2前两种
 */
public class ScopeMain {
    public static void main(String[] args){
        AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(ScopeConfig.class);
        DemoSingletonService s1=context.getBean(DemoSingletonService.class);
        DemoSingletonService s2=context.getBean(DemoSingletonService.class);
        DemoPrototypeService p1=context.getBean(DemoPrototypeService.class);
        DemoPrototypeService p2=context.getBean(DemoPrototypeService.class);
        System.out.println("s1与s2是否相等："+s1.equals(s2));
        System.out.println("p1与p2是否相等："+p1.equals(p2));
    }
}
